#ifndef ___INC_QGENV_H__
#define ___INC_QGENV_H__

#ifdef _MSC_VER
#pragma once
#endif

//////////////////////////////////////////////////////////////////////////
// definitions

#ifdef _SB_WINDOWS_
#define QG_WORK_PATH				"d:\\"
#else
#define QG_WORK_PATH				NULL
#endif


//////////////////////////////////////////////////////////////////////////
// reader && writer

// reader
struct qgReader
{
	KCH_AVOID_FOR_INTERFACE(qgReader);

	virtual void Dispose() = 0;
	virtual bool Test(kconstpointer data, kint size) = 0;
	virtual bool Read(kObj* ctnr, kconstpointer data, kint size, kint flags) = 0;
};

// writer
struct qgWriter
{
	KCH_AVOID_FOR_INTERFACE(qgWriter);

	virtual void Dispose() = 0;
	virtual bool Test(const char* ext) = 0;
	virtual bool Write(kStream* st, kObj* ctnr, kint flags) = 0;
};

#endif	// ___INC_QGENV_H__
